1. Field of the Invention
This invention relates to computer systems. In particular, the invention relates to circuit design techniques and computer-aided design (CAD) software tools.
2. Description of Related Art
In the design of circuits of a system, the design engineer typically faces with a number of decisions based on system requirements and criteria. The system requirements and criteria usually dictate the specifications of the circuits in the system in terms of design constraints. The design constraints limit the choice of design techniques, component selection, design parameters, etc. The design engineer has to satisfy the design constraints and, at the same time, optimize the design in terms of other design parameters. This task becomes increasingly difficult as the complexity of the system increases. The design engineer has to perform complex trade-off analysis to optimize the design from a number of design parameters. Examples of the design parameters include propagation delay and the power consumption of the circuit.
Propagation delay and power consumption are two important design parameters. As microprocessor technology is becoming more advanced in speed and complexity, device power consumption increases significantly. Even with processor operating voltage reduction, device power consumption still grows at a rate of several orders of magnitude. This is largely due to an increased use of on-chip hardware to get parallelism and improve microprocessor performance. In addition, to get extra performance on certain critical timing paths, device sizes are being optimized to provide faster delays at the circuit level. However, size optimization in given design is a very time consuming process. Often, the penalty of upsizing transistors to get performance boosts comes at the expense of a much larger increase in circuit power consumption.
When a system or a functional block consists of many circuits, it is difficult to optimize the design while still meeting the design constraints. Currently, there is no known technique to allow the design engineer to optimize the overall design in a systematic and efficient manner. The design engineer usually works on each circuit separately and performs incremental optimization. This process is tedious and does not give the design engineer a global picture of the entire design.
Therefore there is a need in the technology to provide a simple and efficient method to optimize the design.